perm filename USEMUS.LCS[UP,DOC]1 blob sn#107238 filedate 1975-05-17 generic text, type T, neo UTF8
00100	******* WORK IN PROGRESS -- JUNE, 73 *********
00200	
00300	**********  Using the Music System -- MUS10  **********
00400	
00500	This manual is designed for use with the PDP10 at the Stanford AI lab.
00600	It  is  quite  possible  that  several features discussed will not be
00700	operative on other installations.  See appendix for some details.
00800	
00900	
01000	MUS10 is a complete sound generating  package  which  exists  on  the
01100	disk. In its basic form it includes no storage area for sound output,
01200	so when the program is to be run, a  number,  establishing  the  core
01300	size, must be given following the program name.
01400	
01500	For first attempts type:
01600	
01700		R MUS10 10	
01800		(All lines must be terminated with the 'RETURN' key.)
01900	
02000	At this point the program will type the message:
02100	
02200		INPUT?
02300	
02400	Basically  there  are  two responses possible.   If the program is to
02500	receive  further  instructions  from  another  file  which  has  been
02600	prepared with an editing program, type:
02700	
02800		NAME -- where NAME is the name of the file to be read.
02900				(If NAME has an extension, it must be used!)
03000	
03100	If instructions are to be entered by means of the  teletype  keyboard
03200	(TTY mode), type carriage return (<CR>).
03300	
03400	At  this  point  a  star  (*)  will appear which means the program is
03500	awaiting input.
03600	
03700	Most complete statements  to  be  read  by  MUS10  must  end  with  a
03800	semicolon.  Several  complete  statements  may be entered on a single
03900	line but it is best not to have the lines too long.   More  than  one
04000	line  may  be used for a single statement.  If the less-than sign (<)
04100	appears everything following on that line will be ignored.  Use  this
04200	for entering comments.
04300	
04400	   	*****  Note  that  the above rules DO NOT apply to the syntax
04500		of the SCORE program.
04600	
04700	Already  present  in MUS10 is an "instrument" known as SIMP which has
04800	been set to play a test tone of 'A' (440 hz) for 1/2 second.
04900	
05000	In  order  to  play  this  tone, first get into TTY mode as described
05100	above, then type:
05200	
05300		PLAY;SIMP;FINISH;
05400	
05500	When the computation has finished the note 'A' will be heard  if  the
05600	various  switches on the sound system are all in the right positions.
05700	(See appendix for this  information  and  information  regarding  the
05800	filter settings.)
05900	
06000	Assuming  there were no typographical errors, you will know the comp-
06100	utation is done by the appearance of another star (*).  The test tone
06200	may now be repeated several times by typing:
06300	
06400		$P N where '$' indicates the 'ALT' key and 'N' is the
06500			number of times the note will play.
06600	
06700	If no sound has been heard up to this point repeat the  above,  using
06800	some  large number (e.g.20) for  'N' and go test the various switches
06900	until the tones are heard.
07000	
07100	Occasionally a message will appear:
07200	
07300		HUNG DEVICE AD
07400	
07500	If this happens get expert help.
07600	
07700	******************************************************
07800	
07900	The instrument SIMP has five parameters.
08000	
08100		P1 = begin time of note (in seconds)
08200		P2 = duration of note     "     "
08300		P3 = pitch
08400		P4 = amplitude
08500		P5 = wave form (or timbre)
08600	
08700	P1 and P2 will have the same significance in all instruments but  all
08800	higher   numbered   parameters   are  assigned   roles  according  to
08900	convenience.  (However it will prove useful to consistently apply  P3
09000	and P4 as above.)
09100	
09200	Internally all pitch entries become  numerical,  however  the  twelve
09300	frequencies  of  the  tempered chromatic scale, from middle C (261.62
09400	hz) up to B may be used in MUS10 by typing the letter  names  of  the
09500	notes. The letter S = #; flats are not used in this program.
09600	
09700	Since these letters merely represent the  frequencies of  each  note,
09800	the  octave range may be changed multiplying or dividing by multiples
09900	of two.   Thus C or A in the octave below middle C would  be  entered
10000	as  C/2  or  A/2.   In the octave above the basic middle octave these
10100	notes would be C*2 or A*2.
10200	
10300		C -- 2 octaves down would be C/4
10400		C -- 3 octaves down would be C/8
10500		C -- 2 octaves up would be C*4
10600		C -- 3 octaves up would be C*8 etc.
10700	
10800	To test the use of these letters try:
10900	
11000		P3←C;PLAY;SIMP;FINISH;
11100	
11200	Now instrument SIMP will play middle C instead of A.   The left arrow
11300	(←)  indicates  that  the value of C has been placed in P3, replacing
11400	any value that was previously there.  (The left arrow and the  equals
11500	sign[=] are interchangeable in this program.)
11600	
11700	PLAY;SIMP;FINISH;  must  be typed so the new note will be computed.
11800	After it is first heard it may be repeated as indicated above.
11900	
12000	If frequencies other than those of  the  tempered  scale  are  to  be
12100	played, a number may be used instead of a letter.
12200	
12300		P3←1000;PLAY;SIMP;FINISH; will play a tone at 1000 hz.
12400	
12500	
12600	The amplitude scale available is the range of number from 0 to  2047.
12700	(This  upper  limit  is  set  by the number of bits [12] used for the
12800	sound samples.  See appendix.) P4 has been set at 1200 for  the  test
12900	tone.  This may be reset using the same method as described before.
13000	
13100		P4←100;P3←GS*2;PLAY;SIMP;FINISH;
13200	
13300	This will play a G# above the middle octave at amplitude 100.
13400	
13500	The duration of the tone may be changed be resetting P2.
13600	
13700		P2←.1; etc. will play a note of 1/10 sec. duration.
13800	
13900	If  longer  notes are desired the core being used must be expanded to
14000	allow for more storage space.    At  the  established  sampling  rate
14100	(10000,  see  appendix.)  3.33k  of core is needed for each second of
14200	sound.   Since 1/2" may be played when MUS10 has 10k, 14k  is  needed
14300	for   1 1/2",  17k  for  2 1/2",  20k for 3 1/2", etc.   (Methods for
14400	playing much longer examples are described in SCORE.MAN.)
14500	
14600	********** SETTING CORE SIZE *********
14700	
14800	To  increase  the  core  size type CALL, then C N where N is the core
14900	size desired.   Then type CON (=continue)  to  return  to  where  you
15000	previously were in the program.
15100	
15200	When several parameters are to  be  changed  at  once  the  following
15300	type-in format should be used:
15400	
15500		PLAY;SIMP 0 .2 FS/2 850;FINISH;
15600	
15700	This will play F# below middle C for 2/10" at an  amplitude  of  850.
15800	(Please  note  that  P5,  the  wave form for SIMP, will be dealt with
15900	later.)
16000	
16100	**********  COMMAS  **********
16200	
16300	Commas may be used to separate the parameters and if nothing precedes
16400	a  comma  the contents of that parameter remains unchanged.  Also any
16500	parameter numbers higher than the length of  the  list  will  not  be
16600	affected.
16700	
16800		PLAY;SIMP ,.3,,1200;FINISH;  changes only P2 and P4.
16900	
17000	******************************************************
17100	
17200	A string of notes may be played with the following input:
17300	
17400		PLAY;SIMP 0 .2 C 1500;SIMP .2,,D;SIMP .4,,E;
17500		 SIMP .6,,C;FINISH;
17600	
17700	In this case P1 must be updated for  each  note.  (Never  overlap  an
17800	instrument  with  itself.   Distortion  will  occur.)  P2,  the  note
17900	duration remains unchanged, so the commas suffice for the last  three
18000	notes.  P4, coming at the end of the list for  the  first  note  need
18100	only be stated once if it is not to change.
18200	
18300	Rests  are created by simply leaving some time between the end of one
18400	note (P1+P2) and the beginning of the next (the new P1).
18500	
18600		PLAY;SIMP 0 .2 C;SIMP .5;FINISH; will play C  for  2/10",
18700	rest for 3/10" and then play another C for 2/10".
18800	
18900	
19000	**********  FUNCTIONS  **********
19100	
19200	The  wave  form  in P5 is entered by means of a name which is used by
19300	the program to locate a  list,  or  array,  of  numbers  (512)  which
19400	describe  the wave.  The names used for this purpose will always be F
19500	followed  directly  by  a  number.    These  arrays  will  be  called
19600	"functions."
19700	
19800	Only  one  function  is  in  MUS10,  although more can be added.  The
19900	function present is known as F1 and describes a sine  wave.   To  see
20000	this wave on the CRT type:
20100	
20200		SEE(F1);
20300	
20400	To clear the screen, type 0.
20500	
20600	Functions may be created with an  external  program  called  FUNC  or
20700	within  MUS10  itself  by means of two routines called SYNTH and SEG.
20800	SYNTH is used to create composites made by adding  various  harmonics
20900	together.  The form of F1 could be changed in the following manner:
21000	
21100		SYNTH(F1); 1,1 2,1 3,.5 999;
21200	
21300	In the three pairs of numbers the first of each pair  represents  the
21400	harmonic  number  and  the  second  the  relative  amplitude  of that
21500	harmonic.   Thus the ratios of harmonics 1, 2 and 3 will be 1:1:.5 .
21600	
21700	The size of the second number of each pair is important only  in  its
21800	relation  to  the other amplitude numbers.  The number 999 is used to
21900	signal the termination of a string of entries.
22000	
22100	Several pairs may entered and harmonic numbers up to 256 may be  used
22200	but  in  practice  great  care  must be taken to avoid the "foldover"
22300	effect which  occurs  when  frequencies  higher  than  one  half  the
22400	sampling rate are present. (See appendix.)
22500	
22600	It should be pointed out that the fundamental (harmonic #1) need  not
22700	be present in a wave.
22800	
22900		SYNTH(F1); 10,1 12,1 15,1 999; will give the three notes of a
23000	minor chord.  After this has been entered the following will cause  a
23100	C minor chord to play:
23200	
23300		PLAY;SIMP 0 .5 GS/8;FINISH;
23400	
23500	While the lowest Ab (or G#) on the piano keyboard has been indicated,
23600	since  the wave form includes only the 10th, 12th and 16th harmonics,
23700	the notes middle C, Eb and G will be heard.
23800	
23900	Several  experiments  with  different  wave forms should be made.  Be
24000	sure to SEE the waves so a visual-aural connection might be made.
24100	
24200	A function may be changed in the middle of PLAY routine but  it  must
24300	be  noted that the new wave definition must follow! the note which it
24400	is to affect.
24500	
24600		In PLAY;SIMP 0 .3 D 1000;SIMP .3;SYNTH(F1); 1,.7  3,.2
24700		    5,.1  999;SIMP .6,,E;FINISH;  the newly defined wave
24800	     	will be heard in the second and third notes.
24900	
25000	
25100	If you wish to have several functions with different names  available
25200	and you do not create them with the FUNC program, their names must be
25300	"declared" to MUS10.  Suppose you wish to have F2, F3  and  F4.   You
25400	must type directly to MUS10 (or into an  EDIT file which will be read
25500	by MUS10) the following:
25600	
25700	   ARRAY F2,F3,F4(512);
25800	
25900	The "(512)" indicates that each function array will require 512 words
26000	of  storage.   Thus  at  this  point  the free storage left for sound
26100	samples has been reduced by 1 1/2K so you must increase the  size  of
26200	your  core  if  you  want  to have the same amount of playing time as
26300	before.
26400	
26500	The following example will play a sequence of notes wherein are heard
26600	the 10th, 14th and 18th harmonics of a low C, then the 10th, 13th and
26700	16th, and finally the 10th, 12th and 14th harmonics.
26800	
26900		ARRAY F2,F3(512);
27000		SYNTH(F1);10,1  14,1  18,1  999;
27100		SYNTH(F2);10,1  13,1  16,1  999;
27200		SYNTH(F3);10,1  12,1  14,1  999;
27300		PLAY;SIMP 0 .3 C/4 2000 F1;
27400		SIMP .3,,,,F2;SIMP .6,,,,F3;FINISH;
     

00100	
00200	A type of flow-chart diagram for SIMP would appear as follows:
00300	
00400			 P4       MAG*P3
00500			  |         |
00600			  ↓         ↓
00700			***************
00800			*             *    OSCIL
00900			*             *    U1 (UNIT GENERATOR ONE)
01000		        *     P5      *
01100		         *           *
01200			  *         *
01300			   *********
01400			       |
01500			       ↓
01600			     *****
01700			    * OUT *
01800			    *  A  *
01900			     *****
02000	
02100	The top left input, P4, serves simply as a multiplier for the numbers
02200	found  in  the  wave  form array, P5.  The particular number from the
02300	array to be multiplied is determined by the number in the upper right
02400	input.   The  upper  right  input, in this case P3, when processed by
02500	"MAG" (the "magic" number) becomes the increment, the rate  at  which
02600	the  wave form array is stepped through.  The "magic" number is found
02700	by dividing the array length, 512, by the sampling rate, 10000.
02800	
02900	   512/SRATE=.0512 (Higher sampling rates will be discussed later.)
03000	
03100	The  maximum  size of the numbers in the wave array is + or -1.  Thus
03200	if P4 is set to 1000 the output of the OSCIL will be numbers  in  the
03300	range  +1000  to  -1000 which will describe the wave form put into P5
03400	cycling at the rate given in P3.
03500	
03600	
03700	The code for entering this instrument follows:
03800	
03900		COMPILE;
04000		INSTRUMENT SIMP;
04100		OSCIL(P4,MAG*P3,P5);
04200		OUTA←OUTA+U1;
04300		END;
04400		FINISH;
04500	
04600	Several instruments may appear between COMPILE; and FINISH;.
04700	
04800	
04900	This  instrument  has  only  one unit generator (the OSCIL) hence the
05000	output of U1 is added to the contents of OUTA.  If there are  several
05100	instruments  the  outputs  of all the instruments will be combined in
05200	OUTA for each sample.
05300	
05400	It will be noticed when playing instrument SIMP that the sound begins
05500	and ends quite abruptly.  This is because  no  attack-decay  envelope
05600	has been applied to the tone.  The sound begins at the full amplitude
05700	of P4 and remains at that level for  its  total  duration.
     

00100	
00200	To apply an envelope, another unit generator must be added.
00300	
00400	
00500			 P4       MAG/P2
00600			  |         |
00700			  ↓         ↓
00800			***************
00900			*             *    OSCIL
01000			*             *    U1 (UNIT GENERATOR ONE)
01100		        *     P5      *
01200		         *           *
01300			  *         *
01400			   *********
01500			       |
01600			       | 	 MAG*P3
01700			       |         |
01800			       ↓         ↓
01900			     ***************
02000			     *             *    OSCIL
02100			     *             *    U2 (UNIT GENERATOR TWO)
02200		             *     P6      *
02300		              *           *
02400			       *         *		COMPILE; 
02500			        *********  		INSTRUMENT TOOT;
02600			            |			OSCIL(P4,MAG/P2,P5);
02700			            ↓			OSCIL(U1,MAG*P3,P6);
02800			          *****			OUTA←OUTA+U2;
02900			         * OUT *		END;
03000			         *  A  *		FINISH;
03100			          *****
03200	
03300	Now that the instrument has been expanded you will note  that  it  is
03400	the output of unit generator two (U2) which goes to OUTA.
03500	
03600	P5 will now contain the envelope array.   This array is best  defined
03700	by the SEG routine.   SEG defines the positions of line segments used
03800	to approximate a curve.   With SEG several pairs of  numbers  may  be
03900	entered.   The first number of each pair is an amplitude, normally in
04000	the range of 0 to 1, and the second is the step number in the  array.
04100	The step numbers 1 through 100 are used in SEG.  (However internally,
04200	512 array locations are  used.)  Straight  line  segments  are  drawn
04300	between  each  of  the  points  defined.    The following would put a
04400	triangular envelope shape into F2:
04500	
04600		ARRAY F2(512);
04700		SEG(F2); 0,1  1,50  0,100;
04800	
04900	    Note that the routine is terminated when step 100 is reached.
05000	    DO NOT USE 999 with SEG.
05100	
05200	After having typed in the code for instrument TOOT and the definition
05300	for an  envelope  in F2, the following will produce a note using that
05400	envelope:
05500	
05600		SYNTH(F1);1,1  2,.4   3,.1 999;< Sets the tone color.
05700		PLAY;TOOT 0 .5 A 2000 F1 F2;FINISH;
05800	
05900	If two envelopes are to be contrasted add another function and define
06000	it.
06100		ARRAY F3(512);
06200		SEG(F3); 0,1  1,7  .2,25  .1,60  0,100;< Staccato
06300		PLAY;TOOT 0 .2 1000 2000 F3 F1;  < P5 has envelope
06400		TOOT .2 .5,,,F2;FINISH;<Plays stac. then sust.(F1 then F2)
06500	
     

00100	In the next example a unit generator will be added  above  the  right
00200	side  of  the  bottom,  tone producing unit generator.  In this way a
00300	function may be used to describe fluctuations  of  pitch  within  the
00400	duration  of  a  note  --  much  as  the  previous  example  gave the
00500	possibility for changing the amplitude during a single note.
00600	
00700	
00800					 MAG*P7-MAG*P3       MAG/P8
00900		 P4       MAG/P2		   |         |
01000		  |         |			   ↓         ↓
01100		  ↓         ↓			 *************** 
01200		***************			 *	       *   OSCIL
01300		*	      *	 OSCIL		 * 	       *   U2
01400		*             *  U1     	 *     P9      *
01500		*     P5      *      		  *           * 
01600	         *           * 			   *	     * 
01700	          *         * 			    *********
01800		   ********* 	   MAG*P3		|
01900		       |	       |   _____________|
02000		       |________      _↓___↓_
02100			       |      \     /
02200			       |       \ + /
02300			       |        \_/
02400			       |         |
02500			       ↓         ↓
02600			     ***************
02700			     *		   *
02800		     OSCIL   *             *
02900		     U3	     *     P6      *
03000		              *           * 
03100			       *         *    COMPILE; 
03200			        *********     INSTRUMENT GLISS;
03300			            |	      OSCIL(P4,MAG/P2,P5);
03400			            ↓	      OSCIL(MAG*P7-MAG*P3,MAG/P8,P9);
03500			          *****	      OSCIL(U1,MAG*P3+U2,P6);
03600			         * OUT *      OUTA←OUTA+U3; END; FINISH;
03700			         *  A  *
03800			          *****
03900	
04000	
04100	In order for this instrument to perform glissandos, a third  function
04200	must  be  defined  for P9 (the "shape" of the glissando).  A straight
04300	line slope will suffice for a simple glissando.  After typing in  the
04400	instrument definition set up the three functions.
04500	
04600		ARRAY F5,F6(512); <F1 is already present.
04700		SEG(F5);0,1  .8,7  1,12  1,90  0,100;<Envelope
04800		SEG(F6);0,1  1,100; <Slope
04900	
05000	In the preceding, the ARRAY declaration is needed only when some  new
05100	function names are to be used.
05200	
05300	The following will play a glissando up two octaves, from C to C*4.
05400	
05500		PLAY;GLISS 0 1 C 2000 F5 F1 C*4 1 F6;FINISH;
05600	
05700	If P8←.5; (while P2 remains at 1) two glissandos will be heard.
05800	
05900	
06000	This same instrument may be used to produce a vibrato  by  putting  a
06100	sine  wave into P9, setting P8←1/7; (the vibrato rate will be 7 times
06200	per second) and making P7 some very small amount different from P3.
06300	
06400		PLAY;GLISS 0 1 C 2000 F5 F1 C+2 1/7 F1;FINISH;
06500	
06600			(It is assumed that F1 is a sine wave.)
     

00100		Various types of noise  and  other  random  fluctuations  are
00200	produced  by the two random number unit generators.  These are called
00300	RANDH and RANDI.  RANDH (H=hold) produces in effect a  function  made
00400	up  of  horizantal  lines at various levels with a perpendicular jump
00500	from one level to the next.  There are  two  inputs  to  RANDH.   The
00600	first   (left  hand)  gives  the  range,  plus  or  minus,  of random
00700	selection and the second (right hand) gives the rate (per  second) at
00800	which the selections are to be made.
00900	
01000		Care  must  be  taken with the number in the first input.  If
01100	the number 100 is given, the output of RANDH will  fluctuate  between
01200	+100  and  -100.  Thus if a range of 100 to 200 is desired, the input
01300	number should be 50 and the number 150 must be added to the output.
01400	
01500	
01600					        MAG*P7     MAG*P8
01700		 P4       MAG/P2	           |         | 
01800		  |         |		           ↓         ↓
01900		  ↓         ↓			 *************** 
02000		***************			 *	       *   
02100		*	      *	 OSCIL		 *    RANDH    *   U2
02200		*             *  U1     	 ***************
02300		*     P5      *      		        |
02400	         *           * 			        |
02500	          *         * 			        | 
02600		   ********* 	   MAG*P3		|
02700		       |	       |   _____________|
02800		       |________      _↓___↓_
02900			       |      \     /
03000			       |       \ + /
03100			       |        \_/
03200			       |         |
03300			       ↓         ↓
03400			     ***************
03500			     *		   *
03600		     OSCIL   *             *
03700		     U3	     *     P6      *
03800		              *           * 
03900			       *         *    COMPILE; 
04000			        *********     INSTRUMENT NOISE;
04100			            |	      OSCIL(P4,MAG/P2,P5);
04200			            ↓	      RANDH(MAG*P7,MAG*P8);
04300			          *****	      OSCIL(U1,MAG*P3+U2,P6);
04400			         * OUT *      OUTA←OUTA+U3; END; FINISH;
04500			         *  A  *
04600			          *****
04700	
04800				ARRAY F5(512); <F1 is already present.
04900				SEG(F5);0,1  .8,7  1,12  1,90  0,100;<Env.
05000	
05100	
05200	
05300	
05400		The following will produce white noise.
05500	
05600		SRATE←25000;MAG←512/SRATE;SPEED←2;
05700		PLAY;NOISE 0 .5 C*8 1000 F2 F1 P3 P3*4;FINISH;
05800	
05900		Actually  P8 (given as P3*4) can probably be left at a number
06000	like 4000 for  noise  purposes.    As  P7  is  changed  the  apparent
06100	band-width  of  the  noise  will  be changed.  As the band-width gets
06200	narrower the center frequency becomes more apparent. Thus if P7←P3/16
06300	and  P3 is up in the range of C*8, something of the effect of blowing
06400	across an open tube will be produced.  The  pitch  is  clear  --  but
06500	quite windy.
06600	
06700		The  SRATE  (sampling  rate)  must  be  increased  for  noise
06800	production since very high frequencies are essential.  At SRATE←25000
06900	the high frequency cut-off will be at 12500 hz.
07000	
07100		If P8 is set to a  low  number  (e.g.  8)  individual  random
07200	pitches, instead of noise, will be produced at that rate.
07300	
07400	
07500		If the random unit generator  is  replaced  by  a  RANDI  the
07600	random  function  produced  will  be  made  up  of a series of slopes
07700	(I=incremental) up and down from one random point to another.  In the
07800	case of noise production there is little difference between RANDI and
07900	RANDH.  However RANDI is necessary for getting such things as  random
08000	vibrato.   The following will produce an acceptable, "human" sounding
08100	vibrato.
08200	
08300		PLAY;NOISE 0 1 C*2 1000 F2 F1 P3*.01 16;FINISH;
08400	
08500		The random rate of 16 per  second  (in  P8)  is  considerably
08600	faster  than  the  human  vibrato rate of 5 to 8 per second.  In this
08700	case however since  the  full  band-width  (in  P7)  is  only  seldom
08800	attained and the heard effect is that of a rate much slower than 16.
     

00100	********** APPENDIX XXX NOT COMPLETE!!!XXX  ************
00200	
00300	The main program for sound generation is currently called MUSY.FAI or
00400	MUSEXP.FAI  (EXP=export).  The export version is designed to run on a
00500	standard PDP10 DEC system (which has a  "FAIL"  compiler.) 
00600	
00700	The main program must be loaded with two  subroutine  packages  which
00800	are called NSCTPY.F4 (OR NSCEXP.F4) and MUSIO.FAI (or EXPIO.FAI.) The
00900	FORTRAN routines are for the creation  of  function  arrays  and  for
01000	organizing  the  output  of  sound samples to tape or disk after they
01100	have been computed.  The FAIL routines are for fast output of blocks
01200	of samples.
01300	
01400	The STANFORD version can play sound from core or write all samples on
01500	an external device for playback with  another  program.   The  latter
01600	method is always used for sounds longer than about 10 seconds.
01700	
01800	See  SCORE.MAN  for  information  on longplaying features (RCDFLG and
01900	BIGBIT) and much other information.
02000	
02100	
02200	
02300	********* SOME INFO RE. THE FUNC PROGRAM ***********
02400	
02500	CRUNCH:  Any two functions already in  a  single  .DAT  file  may  be
02600	"crunched" together.  Also, a function may be created by  either  the
02700	SEG  or  SYNTH  routines and then if instead of typing "F" for FINISH
02800	the letter "Z" is typed the program will jump immediately to "crunch"
02900	mode.   At  this  point  the  new  function  may be combined with any
03000	function found in the file presently in core.  Note however that once
03100	this new function  is  processed  by  any  of  "crunch"  options  its
03200	original  form  cannot be regained without going back to ordinary SEG
03300	or SYNTH mode.
03400	
03500	PLOTTING:  If "SP" (=see on the plotter) is  typed  single  functions
03600	can  be  drawn  on  the  Calcomp  plotter.   The size asked for is in
03700	inches. "SA" (=see all on plotter) will plot all the functions  found
03800	in  a single file. "SX" (=see all on the XGP) will draw all functions
03900	from  a  single  file in the proper size for printing by the XGP.  In
04000	order to use "SX" you must!!! follow the next steps exactly!!!
04100	
04200		Before running FUNC type: A DSK PTP <CR>. This will cause the
04300		instructions FUNC sends to the plotter to  be  written  in  a
04400		file on the disk.
04500	
04600		When FUNC asks you once more about what you want to do 
04700		(you have already typed "SX" <CR> and then the appropriate
04800		file name) hit the "CALL" key.
04900	
05000		Then type  F <CR>.  This finishes off the DSK file which 
05100		has just been written.
05200	
05300		Then type R X <CR>.  This  runs  a  program  called  X  which
05400		converts plotter information to XGP commands.
05500	
05600		X will ask you 5 questions.  You should answer as follows:
05700	
05800			PLOT.BIN <CR>		(the file name)
05900			5  <CR>			(shift 5 inches)
06000			<CR>			(use default value of 11".)
06100			1  <CR>			(1 inch from the left)
06200			Y			(yes, delete the plot file)
06300	
06400	
06500	
06600	Information re. WAVES.   To run it type DO WAVES[LCS,MUS].
06700	
06800	This will allow you to  display  the  actual  wave  shapes  of  sound
06900	computed  using RCDFLG←-1;.  The MUSAA.DMD file thus produced is read
07000	by WAVES.
07100	
07200	You may display up to 3072 samples at a  time  but  since  only  1024
07300	separate  positions  can be shown at once, larger  numbers will cause
07400	some samples to be skipped over (but with no great loss.) After  each
07500	group  of samples is displayed a <CR> will move on to the next group.
07600	If a number is typed, that will set the extent of the next group.  If
07700	the number -1 is given, the program will automatically cycle  through
07800	all available samples by groups of the last given number.   (When  no
07900	more samples  are to be found it will end with an error message.)  In
08000	order to make the program  go  backwards  type  any number less  than
08100	-2 for the number of samples you wish to back up.
08200	
08300	This  program  should be of use in seeing the wave shapes produced by
08400	amplitude and frequency modulation as well as seeing the  effects  of
08500	foldover,  etc.   Composite  waves  from  more  than one voice may be
08600	displayed but  as  the  complexity  increases  it  may  prove  rather
08700	difficult to glean useful information from what is seen.